import type { BannerItem } from '@/types/home'
import { http } from '@/utils/http'
import type { CategoryItem } from '@/types/home'
import type { HotItem, GuessItem } from '@/types/home'
import type { PageResult, PageParams } from '@/types/global'

// 首页的 API

// 获取首页轮播图
export const getHomeBannerAPI = (distributionSite = 1) => {
  // res 的数据类型 就是 泛型接口 Data<T> 的 result 的类型, 这里后端返回的是数组类型, 所以在 BannerItem 类型后加上数组
  return http<BannerItem[]>({
    method: 'GET',
    url: '/home/banner',
    data: {
      distributionSite,
    },
  })
}

// 获取首页分类数据
export const getHomeCategoryAPI = () => {
  return http<CategoryItem[]>({
    method: 'GET',
    url: '/home/category/mutli',
  })
}

// 获取首页热门推荐数据
export const getHomeHotAPI = () => {
  return http<HotItem[]>({
    method: 'GET',
    url: '/home/hot/mutli',
  })
}

// 获取首页猜你喜欢数据
export const getHomeGoodsGuessLikeAPI = (data?: PageParams) => {
  // PageResult 是通用数据的返回类型
  // GuessItem 是传进去的猜你喜欢的数据类型
  return http<PageResult<GuessItem>>({
    method: 'GET',
    url: '/home/goods/guessLike',
    data,
  })
}
